Subject: Re: A4000 ROM differences -> slowness
From: [email-masked] ("Michael Sinz")
Date: Sat, 16 Apr 1994 13:13:13 GMT
Newsgroups: comp.sys.amiga.hardware,comp.sys.amiga.programmer,alt.sys.amiga.demos,comp.sys.amiga.games

In article <[email-masked]> [email-masked] writes:
>I have been having compatibility problems with my A4000/030, with quite a few games
>and demos, the symptom being "jerky" execution - the progam halts for half a second
>runs for a split second, halts again for half a second etc. Even the mouse pointer
>and sound freeze during the stops. Programs with this problem include Red Barron
>(which does it about on about 50% of missions) the demo of skidmarks, which does
>it while the text is scrolling on the title screen, and Powermonger.
>
>I had put this down to problems with the 030 processor as these all work fine on the 
>A1200, however I found that they all work with skick, running V1.3, V2.04 or the
>A1200 V3.0 kickstarts. Although the A1200 and A4000 kickstarts have the same ver. no.
>they must be different(?) Also skick would not recognise an A4000 ROM snapshot as
>going with the V3.0 relocation tables (but the A1200 one was O.K.) and booting from
>the A1200 kickstart means you don't get the A4000 harddisk or fastram.

The differences between the A1200 ROM and A4000 ROM are due to the different
hardware (yes, hardware) and the need to support that hardware in the ROM.

The real reason you are seeing what you are seeing is that on Zorro-III systems
a bus access to an address space that is not decoded (invalid address in
Zorro-III space) the system will end up waiting for a while for the address
to respond (in case the card is a slow one) and then finally will cause a
bus fault which on a 68030 can be handled and "ignored" such that the system
does not crash.  On the 68040 systems, the OS makes an MMU table to map all
invalid addresses to one location that is valid such that an invalid address
read will not take the system down.

Note that invalid address accesses are BUGS and really should cause the
system to crash.  However, the reason I made 68040.library do what it does
is because it needed to keep as many programs working (even with bugs) as
it could.

>Does anyone know what the differences are, why they haven't got different version numbers, why the A1200 ROM won't recognise the A4000 IDE port (though it recognises
>the A1200 one O.K.) and most importantly is there a patch for the A4000 ROM that will
>fix the "jerking" problem (as games such as Red Baron are slow and jerky for other
>reasons with no harddisk or fastram!)

The reason for the differences is that the A1200 and A4000 IDE are not the same.
(They are both IDE but are implemented with different gate arrays/pals)
Also, the A1200 has a 24-bit address-space CPU and it can not have A4000-like
FAST RAM.  (But I did add for 3.1 (v40) of EXEC the ability to find CPU-Card
FAST RAM if the CPU card follows the rules...  Too bad 3.1 is not out yet...)

The only way to try to "patch" this may be to run Enforcer with the QUIET
option.  This may not work since the 030 A4000 machines many times have EC parts
which do not have fully working MMUs.

-- 
----
Michael Sinz -- Director, US Research & Development, Scala Inc.
[email-masked] - Scala Computer Television